﻿using log4net;
using log4net.Config;
using System;
using System.Collections.Generic;

namespace WXY.Course.Common.Log
{
    public class Logger
    {
        /// <summary>
        ///  Log4Net 用于输出文本日志
        /// </summary>
        private readonly ILog log4net;

        /// <summary>
        /// 初始化log4net配置,实例化日志分发表及初始化系统信息
        /// </summary>
        /// <param name="type">类型</param>
        public Logger(Type type)
        {
            log4net = LogManager.GetLogger(type);
            XmlConfigurator.Configure();
        }

        #region ILogger 成员

        /// <summary>
        /// 向服务器上输出Debug级别的文本信息
        /// </summary>
        /// <param name="message">信息</param>
        /// <param name="args">参数数组</param>
        public void DebugFormat(string message, params object[] args)
        {
            log4net.DebugFormat(message, args);
        }

        /// <summary>
        /// 向服务器上输出Info级别的文本信息
        /// </summary>
        /// <param name="message">待格式化文本</param>
        /// <param name="args">待插入格式化文本中的数据</param>
        public void InfoFormat(string message, params object[] args)
        {
            log4net.InfoFormat(message, args);
        }

        /// <summary>
        /// 向服务器上输出Error级别的文本信息
        /// </summary>
        /// <param name="message">待格式化文本</param>
        /// <param name="args">待插入格式化文本中的数据</param>
        public void ErrorFormat(string message, params object[] args)
        {
            log4net.ErrorFormat(message, args);
        }
        public void ErrorFormat(Exception ex)
        {
            log4net.Error(ex);
        }

        #endregion ILogger 成员
    }
}